package cn.zjk.springframework.beans.factory;

import cn.zjk.springframework.beans.BeansException;
import cn.zjk.springframework.beans.factory.config.AutowireCapableBeanFactory;
import cn.zjk.springframework.beans.factory.config.BeanDefinition;
import cn.zjk.springframework.beans.factory.config.BeanPostProcessor;
import cn.zjk.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * 分析和修改Bean以及预先实例化的操作接口
 * @author zjk
 * @CreateTime 2023/3/24 15:24
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;

    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);
}
